import java.io.File;

/**
 * @ClassName Demo03_FileFilterLambda
 * @Description FileFilter 是只有一个方法的接口，因此可以使用 lambda 表达式简写
 * @Author Li
 * @Date 2022/8/10 9:59
 * @ModifyDate 2022/8/10 9:59
 * @Version 1.0
 */
public class Demo03_FileFilterLambda {
    public static void main(String[] args) {
        // 创建File对象
        File file = new File("D:\\Temp");
        // 调用递归打印目录方法
        listMenu(file);
    }

    private static void listMenu(File file) {
        // 获取子文件和目录
        File[] files = file.listFiles(pathname -> {
                    return pathname.getName().endsWith(".java") || pathname.isDirectory();
                }
        );

        // 循环打印
        for (File childFile : files) {
            if (childFile.isDirectory()) {
                // 如果子目录，继续遍历，形成递归
                listMenu(childFile);
            } else {
                System.out.println(childFile.getAbsolutePath());
            }
        }
    }
}
